package Work;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

public class StuManagerSystem {
    static ArrayList<Student>list=new ArrayList<Student>();

    public static void main(String[] args) {
//        添加学生信息
        list.add(new Student("张三","123456","18","武汉市江夏区"));
        list.add(new Student("李四","123457","19","武汉市洪山区"));
        list.add(new Student("王五","123458","18","武汉市汉阳区"));
        list.add(new Student("赵六","123459","18","武汉市黄陂区"));
        while (true) {
            System.out.println("欢迎使用学生管理系统！");
            System.out.println("1.查询学生信息");
            System.out.println("2.增加学生");
            System.out.println("3.修改学生信息");
            System.out.println("4.删除学生");
            System.out.println("0.退出系统");
//            用户输入选项
            System.out.println("请输入您的选择：");
            Scanner sc =new Scanner(System.in);
            int op = sc.nextInt();
            switch (op){
//              查询学生信息
                case 1:
                    findStu();
                    break;
//              增加学生
                case 2:
                    addstu();
                    break;
//              修改学生信息
                case 3:
                    modiStu();
                    break;
                case 4:
//                    删除学生
                    delStu();
                    break;
                case 0:
//                    退出系统
                    System.out.println("您已经成功退出系统!");
                    System.exit(0);
                    break;
                default:
                    System.out.println("输入有误请重新输入！");
            }
        }
    }
//    查询学生信息
    private static void findStu() {
//        如果集合为空，显示无查询对象
        if (list.size()==0){
            System.out.println("无学生信息可以查询，请重新操作");
            return;
        }
        System.out.println("请输入您要查询的学生id：");
        Scanner sc = new Scanner(System.in);
        String id = sc.next();
        Boolean flag = false;
        for (int i = 0;i <list.size();i++){
            Student stu  = list.get(i);
            if (stu.getId().equals(id)){
                flag = true;
                System.out.println("学号\t\t姓名\t\t年龄\t\t家庭住址");
                System.out.println(stu.getId()+"\t\t"+stu.getName()+"\t\t"+stu.getAge()+"\t\t"+stu.getAddress());
                break;
            }
        }
        if (flag==false){
            System.out.println("该生信息不存在");
        }
    }
//增加学生
    private static void addstu() {
        Scanner sc = new Scanner((System.in));
        String id;
        while (true){
            System.out.println("请输入您要增加的学生id：");
            id = sc.next();
//            根据id判断是否已经存在
            Boolean flag =false;
//            遍历集合比较id
            for (int i = 0;i < list.size();i++){
                Student stu = list.get(i);//通过索引号获取集合中的学生对象
                if (stu.getId().equals(id)){
                    flag =true; //该学号已经存在
                    break;
                }
            }
            if (flag){
                System.out.println("您的学号已经存在，请重新输入");
            }else{
                break;//学号可用，输入学号循环可以结束
            }
        }
//        输入学生其他信息
        System.out.println("请输入学生姓名");
        String name = sc.next();
        System.out.println("请输入学生年龄");
        String age = sc.next();
        System.out.println("请输入学生家庭住址");
        String address = sc.next();
//        创建学生对象
        Student stu = new Student(id,name,age,address);
        list.add(stu);
        System.out.println("添加学生成功");
    }
//      修改学生信息
    private static void modiStu() {
        System.out.println("请输入要修改的学生id：");
        Scanner sc = new Scanner(System.in);
        String id = sc.next();
        int index = -1;
        for (int i =0;i < list.size();i++){
            Student stu = list.get(i);
            if (stu.getId().equals(id)){
                index = i;
                break;
            }
        }
        if (index == -1){
            System.out.println("您要修改的学生不存在，请重新选择");
        }else {
            System.out.println("请输入学生姓名");
            String name = sc.next();
            System.out.println("请输入学生年龄");
            String age = sc.next();
            System.out.println("请输入学生家庭住址");
            String address = sc.next();
            Student modiStu =new Student(id,name,age,address);
            list.set(index,modiStu);
            System.out.println("学生信息修改成功！");
        }
    }
//    删除学生
    private static void delStu() {
        System.out.println("请输入您要删除的学生id；");
        Scanner sc = new Scanner(System.in);
        String id = sc.next();
        int index =-1;
        for (int i = 0; i < list.size() ; i++) {
            Student  stu = list.get(i);
            if (stu.getId().equals(id)){
                index =i;
                break;
            }
        }
        if (index ==-1){
            System.out.println("您要删除的学生不存在，请重新选择");
        }else {
            list.remove(index);
            System.out.println("该生信息删除成功！");
        }
    }
}
